Controller with programmable reset switch

ABSTRACT

A building controller includes a housing, a plurality of inputs, a plurality of outputs and a programmable reset button. A memory stores programmable instructions pertaining to the programmable reset button. A controller is operably coupled to the memory, the plurality of inputs, the plurality of outputs, and the programmable reset button. The controller is configured to receive signals from the plurality of inputs and to provide control signals to the plurality of outputs that are based at least in part on the received signals from the plurality of inputs. The controller is further configured to implement one or more actions that are based upon the programmed instructions pertaining to the programmable reset button that are stored in the memory when the programmable reset button is activated by a user.

TECHNICAL FIELD

The present disclosure pertains generally to building control systems and more particularly to building controllers that accommodate and/or facilitate control of a building's environment.

BACKGROUND

Building control systems are often used to help control a building's environment, such as temperature, humidity, air quality, lighting, security and/or other aspects of a building's environment. An example building control system may include a Heating, Ventilation, and/or Air Conditioning (HVAC) system used to control the comfort level within a building. Such HVAC systems typically include an HVAC controller that controls various HVAC components of the HVAC system in order to affect and/or control one or more environmental conditions within the building. A need remains for improved building controllers.

SUMMARY

This disclosure relates generally to building controllers such as HVAC controllers. An example of the disclosure includes a Heating, Ventilating and Air Conditioning (HVAC) controller for controlling operation of at least part of an HVAC system. The illustrative HVAC controller includes a housing, a plurality of inputs that are carried by the housing and are accessible from outside of the housing, and a plurality of outputs that are carried by the housing and are accessible from outside of the housing. The illustrative HVAC controller may also include a programmable reset button that is carried by the housing and accessible from outside of the housing. A memory may be housed by the housing and may store programmable instructions that define one or more programmable actions to be carried out in response to activation of the programmable reset button by a user. A controller may be housed by the housing and may be operably coupled to the memory, the plurality of inputs, the plurality of outputs, and the programmable reset button. The controller may be configured to receive signals from the plurality of inputs and provide control signals to the plurality of outputs that are based at least in part on the received signals from the plurality of inputs. The controller may be further configured to implement one or more of the one or more programmable actions defined for the programmable reset button when the programmable reset button is actuated by the user.

Another example of the disclosure includes a building controller for controlling operation of one or more building components in a building system. The building controller may include a housing, a plurality of inputs that are carried by the housing and are accessible from outside of the housing, and a plurality of outputs that are carried by the housing and are accessible from outside of the housing. A programmable reset button may be carried by the housing and may be accessible from outside of the housing. A memory may be housed by the housing and may store programmable instructions pertaining to the programmable reset button. A controller may be housed by the housing and may be operably coupled to the memory, the plurality of inputs, the plurality of outputs, and the programmable reset button. The controller may be configured to receive signals from the plurality of inputs and to provide control signals to the plurality of outputs that are based at least in part on the received signals from the plurality of inputs. The controller may be further configured to implement one or more actions that are based upon the programmed instructions pertaining to the programmable reset button that are stored in the memory when the programmable reset button is activated by a user.

Another example of the disclosure may be found in a method for configuring a building controller that includes a plurality of inputs, a plurality of outputs, a programmable reset button, a memory and a controller operatively coupled to the plurality of inputs, the plurality of outputs, the programmable reset button, and the memory. The illustrative method includes referencing a current state of the programmable reset button at an input of a function block in a programming environment, wherein the function block define one or more programmable actions to be carried out by the controller in response to activation of the programmable reset button by a user. The function block may be downloaded to the memory of the building controller and then may be executed via a function block engine running on the controller. When the programmable reset button is actuated by the user, the function block engine may execute the function block to carry out one or more of the programmable actions associated with the reset button.

The preceding summary is provided to facilitate an understanding of some of the features of the present disclosure and is not intended to be a full description. A full appreciation of the disclosure can be gained by taking the entire specification, claims, drawings, and abstract as a whole.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure may be more completely understood in consideration of the following description of various illustrative embodiments of the disclosure in connection with the accompanying drawings, in which:

FIG. 1 is a schematic block diagram of an illustrative building control system;

FIG. 2 is a schematic block diagram of an illustrative building controller usable with the illustrative building system of FIG. 1;

FIG. 3 is a screen capture of a portion of an illustrative function block wire sheet usable in programming the illustrative building controller of FIG. 2;

FIG. 4 is a screen capture of a property sheet pertaining to one of the function blocks shown in the illustrative function block wire sheet of FIG. 3;

FIG. 5 is a schematic block diagram of an illustrative building controller usable with the illustrative building system of FIG. 1;

FIG. 6 is a perspective view of an illustrative HVAC controller; and

FIG. 7 is a flow diagram showing an illustrative method for configuring a building controller.

While the disclosure is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit aspects of the disclosure to the particular illustrative embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure.

DESCRIPTION

The following description should be read with reference to the drawings wherein like reference numerals indicate like elements. The drawings, which are not necessarily to scale, are not intended to limit the scope of the disclosure. In some of the figures, elements not believed necessary to an understanding of relationships among illustrated components may have been omitted for clarity.

All numbers are herein assumed to be modified by the term “about”, unless the content clearly dictates otherwise. The recitation of numerical ranges by endpoints includes all numbers subsumed within that range (e.g., 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.80, 4, and 5).

As used in this specification and the appended claims, the singular forms “a”, “an”, and “the” include the plural referents unless the content clearly dictates otherwise. As used in this specification and the appended claims, the term “or” is generally employed in its sense including “and/or” unless the content clearly dictates otherwise.

It is noted that references in the specification to “an embodiment”, “some embodiments”, “other embodiments”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is contemplated that the feature, structure, or characteristic may be applied to other embodiments whether or not explicitly described unless clearly stated to the contrary.

FIG. 1 is a schematic block diagram of an illustrative building control system 10. The building control system 10 includes a building system 12 and a building controller 14 that is configured to control operation of at least part of the building system 12. The building system 12 is shown as including a building system component 12 a and a building system component 12 b. It will be appreciated that this is merely illustrative, as the building system 12 may have any number of distinct building system components, and likely has a large number of distinct building system components. The building system 12 may represent any number of different building systems, such as but not limited to an HVAC system, a lighting system, a security system and the like. For purposes of illustration, the building system 12 will be described herein with respect to an HVAC system, but the disclosure is not intended to be so limiting.

In some cases, the building control system 10 may include a computer 16. The computer 16 may be a desktop computer, a laptop computer, a tablet computer, or any other suitable computing device. The computer 16 may be disposed adjacent the building controller 14 for purposes of programming the building controller 14. In some instances, the computer 16 may be remotely located, or may represent a cloud-based server that is capable of communicating with the building controller 14. In some cases, the computer 16 may implement a programming desktop such as a function block wire sheet, in which function blocks may be dragged and dropped onto a wire screen, and the user may subsequently easily connect various inputs and outputs of the function blocks to program desired functions of the building controller 14. The software may translate the function blocks and related inputs and outputs for use by the building controller 14 in controlling operation of the building system 12. In some cases, the building controller 14 may execute a function block engine (e.g., see FIG. 2) that is capable of executing code translated from the function block engine wire sheet.

FIG. 2 is a schematic block diagram of the illustrative building controller 14. In some cases, as illustrated, the building controller 14 may include a function block engine 18 that is configured to utilize the function blocks and wire screen referenced in FIG. 1 to control operation of the building controller 14. A variety of function block and wire screen systems are known. In some cases, the building controller 14 (and the computer 16) may utilize the function block and wire screen system available commercially under the NIAGARA™ name. in some cases, the building controller 14 may include an ETHERNET™ port 20 by which the computer 16 may communicate with the building controller 14. The ETHERNET™ port 20 may be a single port, or it may represent a multi-port switch such as a 4-port gigahertz switch. In some instances, the building controller 14 may be configured to communicate wirelessly with the computer 16.

FIG. 3 is a screen capture of a portion of an illustrative but non-limiting wire screen 30. It will be appreciated that an actual wire screen 30 may be much larger, and include a large number of function blocks and accompanying links between the various inputs and outputs of each of the function blocks. To call out a particular example, it can be seen that the wire screen 30 includes an RHFLOAT floating output function block 32. As can be seen, the RHFLOAT floating output function block 32 displays various parameter values. In some cases, which parameter values are used and/or displayed may be user-programmed. In the example show, one of the displayed parameter values is an HOA parameter 34 and its accompanying value 36. The HOA parameter 34 represents a particular HOA (HAND-OFF-AUTO) switch that is associated with the RHFLOAT floating output function block 32. A HOA switch is a mechanically actuated switch that is actuatable between a HAND (H) setting which represents a manual “ON” setting, an OFF (O) setting which shuts off a particular output associated with that particular HOA switch, and an AUTO (A) setting which places the particular output in automatic control (e.g., to be controlled by a control algorithm of the building controller 14).

The RHFLOAT floating output function block 32 is associated with a floating motor. A floating motor is a motor that can be driven in a first direction (say, to open a damper) by applying voltage pulses to a first electrical contact, and can be driven in a second direction (say, to close the damper) by applying voltage pulses to a second electrical contact. The floating motor would of course also have a ground contact. The RHFLOAT floating output function block 32 can be seen as being operably coupled to an RHOPN1 function block 38 that controls whether an output DO-3 of the building controller 14 is energized and a RHCL01 function block 40 that controls whether an output DO-4 is energized. This can be seen by a PIN parameter 42 and associated value 44 as shown in the RHOPN1 function block 38 and a PIN parameter 46 and associated value 48 as shown in the RHOPN1 function block 38. For purposes of illustration, say that the output DO-3, when energized, drives the floating motor in a first direction while the output DO-4, when energized, drives the floating motor in an opposing second direction. Neither are currently energized, as indicated in the RHFLOAT floating output function block 32 as seen by the OPEN parameter 50 and associated FALSE value 52 and the CLOSED parameter 54 and associated FALSE value 56.

FIG. 4 is a screen capture of an illustrative property sheet 60 that corresponds to the RHFLOAT floating output function block 32 (FIG. 3). It can be seen that while the property sheet 60 includes all of the parameters displayed by the RHFLOAT floating output function block 32, such as but not limited to the HOA parameter 34 and associated AUTO value 36, the OPEN parameter 50 and associated FALSE value 52 and the CLOSED parameter 54 and associated FALSE value 56, the property sheet 60 also includes a number of additional parameters. This allows a user to access parameters and associated parameter values that may be of lesser interest, and thus are not displayed on the RHFLOAT floating output function block 32.

It will be appreciated that FIGS. 3 and 4 provide just a small snippet into an actual wire sheet that includes a larger number of function blocks and corresponding connections between the inputs and outputs of each of the function blocks. This is intended to just provide a small example of how the function block wire sheet functions, and how a user might create the wire screen 30 using the computer 16. As will be appreciated, the use of function blocks to program the building controller 14 can provide a powerful, easy to understand way to program the building controller 14 without having to write lower level code, for example. Rather, the user need only define and interconnect the function blocks, and these function block wire sheets can be translated into code that can be executed by the function block engine 18 of the building controller 14.

FIG. 5 is a schematic block diagram of an illustrative building controller 70 for controlling operation of one or more building components in the building system 12. In some cases, the building system 12 may be an HVAC system, and the building controller 70 may thus be an HVAC controller. The illustrative building controller 70 includes a housing 72. A plurality of inputs 74 are disposed within the housing 72 and are accessible from an outside of the housing 72. While a total of four inputs 74 a, 74 b, 74 c, 74 d are shown, it will be appreciated that this is merely illustrative, as the building controller 70 may have any number of inputs 74, and in some cases will have more than four inputs 74. The illustrative building controller 70 also includes a plurality of outputs 76 that are disposed within the housing 72 and are accessible from an outside of the housing 72. While a total of four outputs 76 a, 76 b, 76 c, 76 d are shown, it will be appreciated that this is merely illustrative, as the building controller 70 may have any number of outputs 76, and in some cases will have more than four outputs 76. The inputs 74 may be used for receiving sensor inputs, for example, while the outputs 76 may be selectively energized in order to control individual components of the building system 12.

The illustrative building controller 70 includes a plurality of manually-actuated HAND-OFF-AUTO (HOA) switches 78, each of which have a HAND (H) position, an OFF (O) positon and an AUTO (A) position. In the example shown, each HOA switch of the plurality of HOA switches 78 is associated with but not directly coupled to a corresponding output of the plurality of outputs 76. In some instances, the building controller 14 may execute a programmable function block engine that defines at least some of the functions of the building controller 14. The programmable function engine block, such as that referenced with respect to the function block engine 18 (FIG. 2) and the wire screen 30 (FIG. 3), may be configured to reference the position of one or more of the plurality of HOA switches 78 when defining a function of one or more of the outputs 76.

As an illustrative but non-limiting example, the function of a first one of the plurality of outputs may include providing a control signal to a first one of the plurality of outputs 76 based at least in part on one or more signals received on one or more of the plurality of inputs 74 when the HOA switch 78 that corresponds to the first one of the plurality of outputs is in the AUTO (A) position. The function of the first one of the plurality of outputs 76 may also include providing a control signal to the first one of the plurality of outputs 76 that is not based on one or more signals received on one or more of the plurality of inputs 74 when the HOA switch 78 that corresponds to the first one of the plurality of outputs is in the HAND (H) position and/or OFF (O) position. For example, the function may assert the first one of the plurality of outputs 76 when the HOA switch 78 that corresponds to the first one of the plurality of outputs is in the HAND (H) position, and may ground the first one of the plurality of outputs 76 when the HOA switch 78 that corresponds to the first one of the plurality of outputs is in the OFF (O) position.

The illustrative building controller 70 includes the building controller 14, which is operatively coupled to the plurality of inputs 74, the plurality of outputs 76, and the plurality of HOA switches 78. In some cases, the building controller 14 may be configured to recognize a position of each of the plurality of HOA switches 78, and to control one or more of the plurality of outputs 76 in accordance with the recognized position of each of the plurality of HOA switches 78 as well as a plurality of programmed configuration settings associated with the plurality of HOA switches 78. The illustrative building controller 70 includes a memory 80 that is coupled with the building controller 14. The memory 80 may be used, for example, to store the programmed configuration settings that are associated with the plurality of HOA switches 78. In some cases, the building controller 14 may be further configured to enable a predetermined delay before changing one of the plurality of outputs 76 in response to a user manually changing a position of a corresponding HOA switch of the plurality of HOA switches 78 between the OFF, HAND and/or AUTO positions.

In some cases, the building controller 14 may be configured to provide control signals to the plurality of outputs 76, wherein the control signal provided to a first one of the plurality of outputs 76 is based at least in part on the recognized position of the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 in conjunction with a configuration setting stored in the memory 80 that is also associated with the HOA switch 78 that corresponds to the first one of the plurality of outputs 76. In some cases, the configuration setting may be programmable, either within the function block wire sheet programming, or subsequently by a user. The control signal provided to the first one of the plurality of outputs 76 may, for example, be based at least in part on one or more of the received signals from the plurality of inputs 74 when the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 is in the AUTO (A) position. In some cases, the control signal provided to the first one of the plurality of outputs 76 is not based on one or more of the received signals from the plurality of inputs 74 when the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 is in the HAND (H) position. In some cases, the first one of the plurality of outputs 76 may be asserted when the corresponding HOA switch 78 is in the HAND (H) position. In some cases, the control signal provided to the first one of the plurality of outputs 76 is not based on one or more of the received signals from the plurality of inputs 74 when the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 is in the OFF (O) position. In some cases, the first one of the plurality of outputs 76 may be de-asserted when the corresponding HOA switch 78 is in the OFF (O) position.

Other configuration settings may be programmed. For example, in some cases, the configuration setting associated with the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 may define a delay period, wherein the control signal provided to the first one of the plurality of outputs 76 is based on at least in part on the recognized position of the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 only after the recognized position of the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 remains in the same recognized position for at least the delay period (e.g. 1 second).

In some cases, such as when two HOA switches 78 in combination are used in conjunction with two outputs 76 that are operably coupled with a device such as a floating motor (as discussed with respect to FIG. 3), the configuration setting stored in the memory 80 may be associated with both the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 and the HOA switch 78 that corresponds to a second one of the plurality of outputs 76. Then, the control signal provided to the first one of the plurality of outputs 76 may be based at least in part on the recognized position of the HOA switch 78 that corresponds to the first one of the plurality of outputs 76, the recognized position of the HOA switch 78 that corresponds to the second one of the plurality of outputs 76 and the configuration setting that is associated with the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 and also associated with the HOA switch 78 that corresponds to a second one of the plurality of outputs 76.

In one example where this might be useful, the configuration setting may causes the building controller 14 to not control the first one of the plurality of outputs 76 in accordance with the HAND (H) position of the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 when the HOA switch 78 that corresponds to the second one of the plurality of outputs 76 is already in the HAND (H) position. That is, the configuration setting may prevent both the first one of the plurality of outputs 76 and the second one of the plurality of outputs 76 to be concurrently turned on, regardless of the recognized positions of the HOA switch 78 that corresponds to the first one of the plurality of outputs 76 and the HOA switch 78 that corresponds to the second one of the plurality of outputs 76. In some cases, this may help prevent damage to a floating motor (or other circuitry) that is controlled by the first and second outputs.

In some instances, the building controller 70 may include a plurality of indicator lights 82. While a total of four indicator lights 82 a, 82 b, 82 c, 82 d are shown, it will be appreciated that this is merely illustrative, as the building controller 70 may have any number of indicator lights 82, and in some cases will have more than four indicator lights 82. In some cases, there may be a one-to-one correspondence between each of the indicator lights 82 and a corresponding HOA switch 78. In some cases, there may be a one-to-one correspondence between each of the indicator lights 82 and a corresponding one of the outputs 76. In some cases, there may be more inputs 74 and/or more outputs 76 than there are indicator lights 82.

In some instances, the building controller 14 may be configured to actuate one or more of the plurality of indicator lights 82 in response to whether the building controller 14 has energized the corresponding output of the plurality of outputs 76. As such, the indicator lights 82 may not switch with the corresponding HOA switch, but rather may reflect the state of the corresponding output. In some cases, the building controller 14 may, for example, be configured to communicate additional information by blinking one or more of the plurality of indicator lights 82 in one or more predetermined blinking patterns. At least some of plurality of indicator lights 82 may each be a light emitting diode (LED), although other light sources are also contemplated.

In some cases, the building controller 70 may include an Internet Protocol (IP) switch 84. The IP switch 84 may include a single ETHERNET™ port, for example, or may include a plurality of ETHERNET™ ports. The IP switch 84 may be operably coupled to the building controller 14, and may be used to, for example, upload a function block wire sheet (such as the wire screen 30) from the computer 16 (FIG. 2) to the function block engine 18 (FIG. 2). The IP switch 84 may also be used to connect additional functionality to the building controller 70, and/or to provide a separate building network that is separate from the IT network of the business. For example, one or more security cameras (not illustrated) may be connected to the IP switch 84. This is just an example.

The building controller 70 may, for example, include a programmable reset button 86 that is carried by the housing 72 and is accessible from outside of the housing 72. The memory 80 may store programmable instructions that define one or more programmable actions to be carried out in response to activation of the programmable reset button 86 by a user. In response to the user actuating the programmable reset button 86 (e.g. by touching or pushing the button), the building controller 14 may be configured to implement one or more programmable actions defined for the programmable reset button 86. In some instances, the programmable instructions may be received from a programming environment (such as the computer 16) via the IP switch 84.

The building controller 14 may take a variety of actions in response to the user actuating the programmable reset button 86, depending on the programmable instructions. For example, the building controller 14 may implement a restart of only a portion of the building controller 70 (e.g. one card of the building controller). The building controller 14 may implement a full restart of the building controller 70. The building controller 14 may simply shut down the building controller 70. The programmable actions carried out in response to activation of the programmable reset button 86 may include providing one or more control signals to the plurality of outputs. The one or more programmable actions to be carried out in response to activation of the programmable reset button 86 may include providing control signals that execute a test on one or more HVAC components. For example, the test may include a test and balancing procedure for a Variable Air Volume (VAV) box.

As another example, the one or more programmable actions to be carried out in response to activation of the programmable reset button 86 may include providing control signals that place at least part of an HVAC system into a remote control mode or an energy savings mode. The one or more programmable actions to be carried out in response to activation of the programmable reset button may include a first action and a second action, wherein the building controller 14 may be configured to implement the first action in response to a first actuation pattern of the programmable reset button by the user, and implement the second action in response to a second actuation pattern of the programmable reset button by the user. For example, the first actuation pattern and the second actuation pattern may differ in how long the programmable reset button 86 is held down and/or in how many times the programmable reset button 86 is actuated by the user. These are just examples.

FIG. 6 is a perspective view of an HVAC controller 90 that may be considered as being an example of the building controller 14 (FIG. 1) and/or the building controller 70 (FIG. 5). It will be appreciated that the HVAC controller 90 may include features of the building controller 14 and/or features of the building controller 70. Similarly, the building controller 14 may include features of the building controller 70 and/or the HVAC controller 90. The building controller 70 may include features of the building controller 14 and/or the HVAC controller 90. As can be seen, the HVAC controller 90 includes the plurality of inputs 74 and the plurality of outputs 76. The HVAC controller 90 includes the plurality of HOA switches 78 and the plurality of indicator lights 82. As referenced with respect to FIG. 5, each of the HOA switches 78 are manually actuatable between a HAND (H) setting, an OFF (O) setting and an AUTO (A) setting.

FIG. 7 is a flow diagram showing an illustrative method for configuring a building controller such as the building controller 70 (FIG. 5) that includes the plurality of inputs 74, the plurality of outputs 76, the programmable reset button 86, the memory 80 and the building controller 14. The method begins at block 102, with referencing a current state of the programmable reset button 86 at an input 74 of a function block in a programming environment, wherein the function block defines one or more programmable actions to be carried out by the building controller 14 in response to activation of the programmable reset button 86 by a user. As noted at block 104, the function block is downloaded to the memory of the building controller. In some instances, the function block may be downloaded to the memory 80 via an ETHERNET™ port such as the ETHERNET™ port 20 (FIG. 2) or the IP switch 84 (FIG. 5). As noted at block 106, the function block may be executed via a function block engine running on the building controller 14. When the programmable reset button 86 is actuated by the user, and as noted at block 108, the function block engine executes the function block to carry out one or more of the programmable actions.

Those skilled in the art will recognize that the present disclosure may be manifested in a variety of forms other than the specific embodiments described and contemplated herein. Accordingly, departure in form and detail may be made without departing from the scope and spirit of the present disclosure as described in the appended claims. 

What is claimed is:
 1. A Heating, Ventilating and Air Conditioning (HVAC) controller for controlling operation of at least part of an HVAC system, the HVAC controller comprising: a housing; a plurality of inputs carried by the housing and accessible from outside of the housing; a plurality of outputs carried by the housing and accessible from outside of the housing; a programmable reset button carried by the housing and accessible from outside of the housing; a memory housed by the housing, the memory storing programmable instructions that define one or more programmable actions to be carried out in response to activation of the programmable reset button by a user; a controller housed by the housing and operably coupled to the memory, the plurality of inputs, the plurality of outputs, and the programmable reset button, the controller configured to receive signals from the plurality of inputs and provide control signals to the plurality of outputs that are based at least in part on the received signals from the plurality of inputs; and wherein the controller is further configured to implement one or more of the one or more programmable actions defined for the programmable reset button when the programmable reset button is actuated by the user.
 2. The HVAC controller of claim 1, further comprising an input port accessible from outside of the housing for receiving from a programming environment the programmable instructions that define the one or more programmable actions to be carried out in response to activation of the programmable reset button by a user.
 3. The HVAC controller of claim 2, wherein the input port comprises an Ethernet port.
 4. The HVAC controller of claim 1, wherein the one or more programmable actions to be carried out in response to activation of the programmable reset button include a restart of only a portion of the HVAC controller.
 5. The HVAC controller of claim 1, wherein the one or more programmable actions to be carried out in response to activation of the programmable reset button include a full restart of the HVAC controller.
 6. The HVAC controller of claim 1, wherein the one or more programmable actions to be carried out in response to activation of the programmable reset button include shutting down the HVAC controller.
 7. The HVAC controller of claim 1, wherein the one or more programmable actions to be carried out in response to activation of the programmable reset button include providing one or more control signals to the plurality of outputs.
 8. The HVAC controller of claim 7, wherein the one or more programmable actions to be carried out in response to activation of the programmable reset button include providing control signals that execute a test on one or more HVAC components within the HVAC system.
 9. The HVAC controller of claim 8, wherein the test on one or more HVAC components within the HVAC system includes a test and balancing procedure for a Variable Air Volume (VAV) box.
 10. The HVAC controller of claim 8, wherein the one or more programmable actions to be carried out in response to activation of the programmable reset button include providing control signals that place at least part of the HVAC system into a remote control mode or an energy savings mode.
 11. The HVAC controller of claim 1, wherein the one or more programmable actions to be carried out in response to activation of the programmable reset button include a first action and a second action, wherein the controller is configured to implement the first action in response to a first actuation pattern of the programmable reset button by the user, and implement the second action in response to a second actuation pattern of the programmable reset button by the user.
 12. The HVAC controller of claim 11, wherein the first actuation pattern and the second actuation pattern differ in how long the programmable reset button is held down and/or in how many times the programmable reset button is actuated by the user.
 13. The HVAC controller of claim 1, further comprising a plurality of manually-actuated HAND-OFF-AUTO (HOA) switches each having a HAND (H) position, an OFF (O) position and an AUTO (A) position, the HOA switches carried by the housing and accessible from outside of the housing, each of the plurality of HOA switches associated with a corresponding output of the plurality of outputs of the HVAC controller; wherein the controller is further configured to: recognize a position of each of the plurality of HOA switches; and when the programmable reset button is not actuated, provide control signals to at least some of the plurality of outputs that are based at least in part on the recognized positions of the HOA switches that correspond to the at least some of the plurality of outputs.
 14. The HVAC controller of claim 1, wherein the controller executes a function block engine, wherein a state of the programmable reset button is referenced by the function block engine and the function block engine controls execution of the programmable instructions that define the one or more programmable actions of the programmable reset button.
 15. A building controller for controlling operation of one or more building components in a building system, the building controller comprising: a housing a plurality of inputs carried by the housing and accessible from outside of the housing; a plurality of outputs carried by the housing and accessible from outside of the housing; a programmable reset button carried by the housing and accessible from outside of the housing; a memory housed by the housing, the memory storing programmable instructions pertaining to the programmable reset button; a controller housed by the housing and operably coupled to the memory, the plurality of inputs, the plurality of outputs, and the programmable reset button, the controller configured to receive signals from the plurality of inputs and to provide control signals to the plurality of outputs that are based at least in part on the received signals from the plurality of inputs; the controller is further configured to implement one or more actions that are based upon the programmed instructions pertaining to the programmable reset button that are stored in the memory when the programmable reset button is activated by a user.
 16. The HVAC controller of claim 15, wherein the controller executes a function block engine, wherein a state of the programmable reset button is referenced by the function block engine and the function block engine controls execution of the programmable instructions that pertain to the programmable reset button.
 17. The HVAC controller of claim 16, wherein the programmable instructions pertaining to the programmable reset button are defined by a function block that is executed by the function block engine.
 18. The HVAC controller of claim 15, further comprising an input port accessible from outside of the housing for receiving from a programming environment the programmable instructions that pertain to the programmable reset button, wherein the input port comprises an Ethernet port.
 19. A method for configuring a building controller, the building controller comprising a plurality of inputs, a plurality of outputs, a programmable reset button, a memory and a controller operatively coupled to the plurality of inputs, the plurality of outputs, the programmable reset button, and the memory, the method comprising: referencing a current state of the programmable reset button at an input of a function block in a programming environment, wherein the function block defines one or more programmable actions to be carried out by the controller in response to activation of the programmable reset button by a user; downloading the function block to the memory of the building controller; executing the function block via a function block engine of the controller; and wherein when the programmable reset button is actuated by the user, the function block engine executes the function block to carry out one or more of the programmable actions.
 20. The method of claim 19, wherein the function block is downloaded to the memory of the building controller via an Ethernet port of the building controller. 